TOC
INDEX

Menus and the Menubar

 

Here is the 3D-Filmstrip menubar (when Surfaces is the currently selected Category):

Below we will discuss in turn each of the menus in the menubar, but first we wish to point out special features of two of the 3D-Filmstrip menus. In reality, 3D-Filmstrip is a collection of many closely related programs living under one roof. Each of the 3D-Filmstrip Categories not only has its own collection of mathematical objects, but also needs its own special ways of visualizing these objects. For this reason two of the menus in the menubar are "context sensitive". As soon as the user selects a new Category, the third menu from the left (called the Main menu) changes to a menu with the name of that category. The Main menu is a menu of nouns---it contains the names of all the objects of that Category. Just to the right of the Main menu is a menu of verbs, called the Action menu. Generally speaking, a user first selects an object from the Main menu and then an action to perform on it from the Action menu. Since what you can do to an object depends on what Category it belongs to as well as its special characteristics, the Action menu is particularly context sensitive, and in fact it is re-created from scratch each time it is pulled down. The remaining menus are are more stable. To continue the metaphor, they are menus of adjective and adverbs; making a selection from one of them modifies the nature of the selected object chosen from the Main menu or of the action chosen from the Action menu. While these other menus change slightly with the context (e.g., certain items are enabled or disabled or change their names slightly) they are much more stable, than either the Main menu or the Action menu, and a representation of each is given below. Elsewhere give a list of representations of the Main menu and a list of representations of the Action menu.


The File Menu

By tradition, the File menu has as its final entry the Quit command. It also contains just above Quit a Cose Window command. This closes an active Dialog window, but not the main Graphics window, which is always open. The remainder of the File menu has the more interesting items for saving and restoring Settings files, saving the current contents of the Graphics mindow as a PICT file, saving filmstrip animations as QuickTime movies, and for exporting surfaces to Matlab and POVRAY, and importing surfaces from Matlab. Click here for more details on the File menu and just what its various items do.

File

Open Settings...

Save Settings...

Save Window As Pict File...

Save Animation As Movie...

Save Surface Data...

Open Surface Data...

Open Movie...

Close Window

Quit

 

The Edit Menu

Not used by 3D-Filmstrip

 

The Main Menu

The Main menu is just to the right of the Edit menu and has the name of the current Category. It lists all the pre-programmed objects of the current Category, as well as any User Defined... items. In some cases, the current Category will have subcategories, and the Main menu will have submenus to reflect this fact. For example, the Surface menu has submenus that list non-orientable surfaces, pseudospherical surfaces, and minimal surfaces. A representation of the main menu associated to each Category is given with the documentation for that Category. Click one of the following category names to see the associated Main menus: Plane Curves, Space Curves, Surfaces, Conformal Maps, Polyhedra, ODE1D1stOrder, ODE1D2ndOrder, ODE2D1stOrder, ODE2D2ndOrder, ODE3D1stOrder, ODE3D2ndOrder, Central Forces, Lattice Models, Waves.

 

The Action Menu Click here for more details on the Action menu.

The Action menu like the Main menu is context-sensitive, and in fact it is created on the fly each time it is pulled down. Its contents reflect the current Category, and the currently selected object of that category. Click one of the following category names to see the associated Action menus: Plane Curves, Space Curves, Surfaces, Conformal Maps, Polyhedra, ODE1D1stOrder, ODE1D2ndOrder, ODE2D1stOrder, ODE2D2ndOrder, ODE3D1stOrder, ODE3D2ndOrder, Central Forces, Lattice Models, Waves.

The Category Menu

The Category menu simply lists the various categories of mathematical objects that 3D-Filmstrip deals with. Choosing a particular Category makes it the "currently chosen Category", and makes its menu the current Main menu.

Category

Plane Curves

 

Space Curves

 

Surfaces

 

Conformal Maps

 

Polyhedra

 

ODE

 

 

ODE(1D)1stOrder

 

ODE(1D)2ndOrder

 

ODE(2D)1stOrder

 

ODE(2D)2ndOrder

 

ODE(3D)1stOrder

 

ODE(3D)2ndOrder

 

Central Forces

 

Lattice Models

Waves

 

 

The Settings Menu

The integer "Scale" is just the number of screen pixels per "unit of length". Thus, the larger you set Scale, the larger details will look on the screen. (However this will not show any extra detail unless you also increase resolutions at the same time.)

The Set Morphing... dialog allows you to set the initial and final values of the nine parameters, aa, bb, ..., ii, during a morph (and, for the surface category, the initial and final values of umin, umax, vmin, vmax). The initial value of aa is called aa0, and the final value aa1, etc. During a morphing animation the initial and final frames are drawn using these initial and final values respectively, and the values for the intermediate frames are determined by linear interpolation. Often it is convenient to set the initial and final values to the current values and then make a few modifications. To do this, click on the button "Init to Current Parameters".

The number (N) of frames in a filmstrip determines how an animation will play out, and can be chosen independently for the three types of filmstrips (morphing, oscillation, and rotation). For example, if you choose Rotation from the Animate Menu, the filmstrip created will consist of a full rotation of 360 degrees about the Rotation Axis, each frame being (360/N) degrees rotated from the preceding, where N is the number of frames in a rotation filmstrip. Making N large will give a smoother rotation that takes longer to play through the loop once. Choosing Oscillate from the Animate Menu will create a sequence of N frames, each rotated 5 degrees from the preceding one, where N is now the number of frames in an oscillation filmstrip. This give a quick way of seeing a smooth rotation through a smaller range. There is also a parameter, Rotation Divisor, that can be set in the Set Number of Frames... dialog. If this is set to an integer n, then a rotation filmstrip with N frames will only rotate 360/Nn degrees between frames (rather than 360/N), so it will only rotate a total of 360/n degrees (instead of 360 degrees). Of course this will produce a sudden jump at the end of each time thru the filmstrip unless the object being displayed is invariant under a 360/n degree rotation about the rotation axis. But if this is the case, then a smooth rotation can be created using many fewer frames. For a morphing animation, the number of frames determines how many intermediate stages there are between the initial and final stage of the morph

The Custom... item of the Set Light Sources submenu of the Settings menu brings up one of the more complex dialogs of the program. This lets the user set the color of the five light sources (Source0, Source1, Source2, Source3, and AmbientSource) and the direction of the light rays from Source1, Source2, Source3. The two parameters that determine the characteristics of specular reflection from a surface (Specular Exponent and Specular Ratio) are also set using this dialog. This dialog is used in combination with the Set Coloration submenu of the Surface menu to determine the color of a surface when the Color item of the View menu is chosen. See the section on color for more details.

Settings

Set Resolution&Scale...

 

Set t,u,v ranges...

 

Set Parameters...

 

Set Morphing...

 

Set Number of Frames...

 

Set Light Sources

 

 

Default 1

 

Default 2

 

Distinctly Colored Sides Default

 

Viewpoint Only

 

Ambient Only

User Option

Save Current Options as User Option

 

High Specularity

 

Medium Specularity

 

Low Specularity

 

Custom...

Set Rotation Axis...

 

ODE Settings...

 

Set Monitor

 

 

Black&White

 

16 Grays

 

16 Colors

 

256 Grays

 

256 Colors

 

Thousands

 

Millions

 

The View Menu

View

Show Toolbar

Show Axes

Perspective Projection

Orthographic Projection

Standard Orientation

Reverse Orientation

No Orientation

Wireframe Display

Patch Display

White Background

Black Background

Black&White

Color

Distinguish Sides by Color

Stereo Vision

Monocular Vision

 

Aspect Menu

Aspect

Display Axes Only

Display Object

Choose Screen Center by Mouse

Go Towards Mouse

Forward (Level)

Backward (Level)

Towards Screen Center

Away From Screen Center

Revolve Clockwise

Revolve Counterclockwise

Rotate Viewpoint Up

Rotate Viewpoint Down

Choose Rotation Axis

Rotate About Rotation Axis

Translate Right

Translate Left

Translate Up

Translate Down

Other Side

Zoom In

Zoom Out

Look at Origin From...

Choose Aspect Parameters...

Before beginning a description of the Aspect menu it is important to understand a basic design feature of 3D-Filmstrip: once an object is created in space, it is never moved or re-created in a different location. All different views of the object are created by using the well-known "alias vs. alibi" duality. For example, to make an object centered at the origin appear to rotate clockwise about the origin, we fix ImagePlaneCenter at the origin, and then rotate ViewPoint and ViewDirection counterclockwise about the origin, keeping FocalLength fixed. Similarly, to make an object appear to translate up,down, right, or left, we translate both ViewPoint and ImagePlaneCenter in the opposite direction, keeping ViewDirection and FocalLength fixed. Of course this only works because we are dealing with a single object at a time. If we had both a torus and an ellipsoid on the screen, and wanted to rotate one while we translated the other, the approach we are using fails. But since we are only dealing with a single object at any time, this approach both simplifies and speeds up the process of showing different views of an object.

Most of the pre-programmed three-dimensional objects in the program are symmetric with respect to the origin so it was natural to choose the origin as default ImagePlaneCenter. One of the early objects (Dini's Surface) seemed to look particularly nice when viewed from (10,-10,10), so that became the default ViewPoint, making the default FocalLength 10 sqrt(3), and default ViewDirection (-sqrt(3)/3, sqrt(3)/3, -\sqrt(3)/3). It is natural to choose Scale proportional to the linear size of the Graphics Window. After a little experimentation I chose one-tenth the sum of the height and witdth of the Graphics Window in pixels as the default value of Scale. (For a 420 pixel by 300 pixel sized Graphics Window, this makes Scale equal to 72, so a line segment of unit length on the ImagePlane will appear to be one inch long on a monitor with resolution of 72 dpi.) Finally, the default value of ClipRatio is one-quarter (giving a default ClipDistance of 4.33), and the default value of EyeSeparationRatio is 0.075 (giving EyeSeparation a default valure of 1.2). Of course, for certain objects, these default values are inappropriate, and the program changes them to other values before creating the default display of the object.

Sometimes you may want to experiment with various choices of aspect, trying to find the "best" one. It is annoying to have to wait for a complex object to redraw after each choice, and to speed things up it is possible to have the program just draw the coordinate axes instead of the whole object after each change of aspect. To enter this mode of operation just choose Show Axes Only from the top of the Aspect menu (this item will then become checked). When you are satisfied with the choice of aspect, select this item again and the object will be drawn with the new aspect parameters (and Show Axes Only will become unchecked). This feature was suggested by Hermann Karcher.

We next describe how to use the various items from the Aspect menu to change the aspect parameters in ways that will have desired visual effects. But remember that using virtual sphere mode will often be the quickest and most intuitive way to change the aspect parameters to desired values. The easiest to explain are the last two items, "Look at Origin From..." and "Choose Aspect Parameters...". The first of these allows the user to set a particular Viewpoint in space, after which the program adjusts other aspect parameters (FocalLength, ViewDirection, ...) appropriately. "Choose Aspect Parameters..." brings up a dialog that permits the user to set the parameters "by hand". Note that since ViewDirection is a direction, it is convenient to give it by its altitude (the angle it makes with the x,y-plane) and its azimuth (the angle its projection on the x,y-plane makes with the x-axis). You should not use this dialog to set ViewPoint unless you are sure of what you are doing and need some special effect---otherwiae, use "Look at Origin From..." instead. The reason is that using the "Choose Aspect Parameters..." dialog to set the ViewPoint will only change ViewPoint and not adjust the other parameters as the normally should be.

The others menu entries are more specialized and will be described in the order they occur.

Choose Screen Center by Mouse.
After choosing this item, click on a point in the Graphics Window. The program will interpret the mouse point as a point of ImagePlane and move ImagePlaneCenter to that point, keeping ViewPoint and FocalLength fixed (and making the appropriate adjustment to ViewDirection). The program will then redraw the space object.
Go Towards Mouse.
After choosing this item, click on a point in the Graphics Window. The program will interpret the mouse point as a point of ImagePlane and translate the ViewPoint in the direction of that point by a distance delta. (ViewDirection and FocalLength are left fixed, so ImagePlaneCenter is translated by the same vector as ViewPoint.) The distance delta is a certain fraction, ForwardMotionRatio of FocalLength. (Currently ForwardMotionRatio is hard-coded to be 0.035, but in later versions it will be user-settable.
Forward (Level) and Backward (Level).
The projection of ViewDirection on the horizontal plane (i.e., orthogonal to the z-axis) is computed and normalized, and ViewPoint is translated in that direction (or the opposite direction) by the quantity delta described above).
Toward Screen Center and Away From Screen Center.
The same as the preceding, except the direction of translation is ViewDirection (i.e., the z-component is not subtracted of.
Revolve Clockwise and Revolve Counterclockwise.
ViewPoint is rotated counterclockwise (respectively clockwise) about ImagePlaneCenter, keeping ImagePlaneCenter and FocalLength fixed. The amount of rotation is an angle theta. Currently theta is hard-coded to 5 degrees, but eventually it will be user-settable.
Rotate Viepoint Up and Rotate Viewpoint Down.
The elevation of ViewDirection is increased (decreased) by theta keeping the azimuth fixed. The angle theta is the same as iabove. (When the elevation of ViewDirection approaches 88 degrees, the increment (decrement) is decreased so that the elevation never gets outside the range from -88 degrees to 88 degrees.)
Choose Rotation Axis.
This brings up the same dialog as Set Rotation Axis... in the Settings menu, to allow the user to set (the colatitude and longitude of) an axis about which a space object will be rotated.
Rotate Viewpoint About Rotation Axis.
This rotates ViewPoint about the Rotation Axis. The origin as center of rotation. (Since most objects are constructed so as to have the origin at ot near their center of gravity, the effect is to rotate the object in space about an axis through the object.) The angle of rotation is again the same theta as above).
Translate Right (and Left and Up and Down).
The ViewPoint and ImagePlaneCenter are both translated by the same amount (so as to give the stated effect), keeping FocalLength and ViewDirection fixed).
Other Side.
ViewPoint and ViewDirection are reflected in the point ImagePlaneCenter, leaving ImagePlaneCenter and FocalLength unchanged. The effect is to view the object from the other side.
Zoom In and Zoom Out.
This is the only item (except for Choose Aspect Parameters..) that permits the user to change FocalLength. They respectively multiply (divide) FocalLength by a fixed factor m. Currently m is hard-coded to the sixth root of 2 (so choosing Zoom In six times will double the size of things), but eventually it will be user-settable.

The main use for the Aspect menu is in creating a Grand Tour, and in fact it is Grand Tours that makes the Aspect menu necessary. Still, this is an awkward menu to use and rventually I plan to replace it with a control panel that will have the same functionality.

 

Animate Menu

Animate

Playback

Realtime Animation

Filmstrip Animation

Morph

Cyclic Morph

Associate Family Morph

Rotate

Oscillate

Spin

Grand Tour

 

Help Menu

The Help menu gives access to some of the same information contained in this documentation. The main difference is that it is not hyper-linked, and only basic items are covered.

Help

Once Over Lightly

Getting Started 1

Getting Started 2

Hints

The Files Menu

The Settings Menu

The Action Menu

Rendering

Aspect

Grand Tour

Stereo Vision

Color

Acknowledgements

Copyright

Read Me Last

Download Latest Version

3D--Filmstrip Homepage

Online HTML Documentation


Documentation Table Of Contents.
Documentation Index.